/*
 * Fernanda Ibarrola - 0711920
 * Luiza Silva       - 0810905
 *
 */


#ifndef PACIENTE_H
#define PACIENTE_H

#include "heap.h"

typedef struct paciente Paciente;
struct paciente {
	int CPF;
	char nome[61];
	char orgao[8];
	float gravidade;
	int tempoEspera;
	char contato[101];
	int colisao;
	Paciente* prox;
};

/* Lê um arquivo de pacientes, aloca cada um e chama a função de hash para alocação no vetor principal. */
Paciente** leArquivo (char* nomeArquivo, FILE* arquivoOut);

/* Libera memoria que esta no vetor e o proprio */
void zeraVetor (Paciente** hashVetor, int tam);

/* Funcao que faz a comparacao de pacientes segundo sua prioridade */
int definePrioridade(void* pacienteA, void* pacienteB);

/* Imprimre os 3 primeiros da heap h */
void imprimePrimeiros(Heap* h, FILE* arquivoOut);

/* Muda a gravidade do paciente p */
void mudaGravidade(Paciente* p);

/* Retira os pacientes atendidos e muda a gravidade dos que permanecem */
void atualizaFila(Heap* h, int numAtendidos);

#endif
